#ifndef D_MAT4F_H
#define D_MAT4F_H

namespace d_Math
{

class d_Mat4f
{
public:
	d_Mat4f();
	d_Mat4f(float a00, float a01, float a02, float a03,
	        float a10, float a11, float a12, float a13,
	        float a20, float a21, float a22, float a23,
	        float a30, float a31, float a32, float a33);
	void diagonal(float x);
	d_Vec4f operator * (d_Vec4f v);
	float &operator () (int ir, int ic); 
	float operator () (int ir, int ic) const; 
	d_Mat4f operator * (d_Mat4f m);
	void operator *= (d_Mat4f m);
	d_Mat4f operator / (float x);

	float p[4][4];
	void print();
};

}

#endif
